package com.wans.guli.integration.oauth;

import com.wans.guli.common.utils.R;
import com.wans.guli.integration.vo.oauth.OAuthAccessParam;
import com.wans.guli.integration.vo.oauth.OAuthAccessVO;
import com.wans.guli.integration.vo.oauth.OAuthUserInfoVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
public class GiteeController {

    @Autowired
    private GiteeFeignClient giteeFeignClient;

    @PostMapping("/oauth/token")
    public R getAccessToken(@RequestBody OAuthAccessParam param) {

        OAuthAccessVO oAuthAccessVO = null;
        try {
            oAuthAccessVO = giteeFeignClient.getAccessToken(param);
        } catch (Exception e) {
            return R.error(e.getMessage());
        }

        return R.success(oAuthAccessVO);
    }

    @GetMapping("/api/v5/user")
    @ResponseBody
    R getUserInfo(@RequestParam("accessToken") String accessToken) {
        OAuthUserInfoVO userInfo = null;
        try {
            userInfo = giteeFeignClient.getUserInfo(accessToken);
        } catch (Exception e) {
            return R.error(e.getMessage());
        }

        return R.success(userInfo);
    }

}
